<?php

Yii::import('application.vendors.excel.*');
require_once('PHPExcel.php');

//Instanciamos el objeto PHPEXCEL para construir los datos a poner en EXCEL.
$objPHPExcel = new PHPExcel();

//Obtenemos la hoja activa.
$sheet = $objPHPExcel->getActiveSheet();

//Agregar el titulo del reporte
$objPHPExcel->getActiveSheet()->setCellValue('A1','REPORTE DE DOCUMENTOS AGREGADOS AL GESTOR DOCUMENTAL');
$objPHPExcel->getActiveSheet()->mergeCells('A1:E1');
//$user = User::model()->findByPk(Yii::app()->user->id);

$sheet->setCellValue('A2', 'GENERADO POR: usuario  FECHA: '. date('d-F-Y H:i'));
//$sheet->setCellValue('A2', 'GENERADO POR: '.$user->username.'    FECHA: '. date('d-F-Y H:i'));
$objPHPExcel->getActiveSheet()->mergeCells('A2:E2');
$sheet->setCellValue('A4', 'ID');
$sheet->setCellValue('B4', 'NUM. TRAMITE');
$sheet->setCellValue('C4', 'FECHA INGRESO');
$sheet->setCellValue('D4', 'USUARIO');
$sheet->setCellValue('E4', 'PRIORIDAD');
$sheet->setCellValue('F4', 'TERMINADO');
$sheet->setCellValue('G4', 'DEPARTAMENTO');
$sheet->setCellValue('H4', 'TRAMITE');
$sheet->setCellValue('I4', 'ASUNTO');
$sheet->setCellValue('J4', 'FECHA RESOLUCION');
$sheet->setCellValue('K4', 'ESTADO TRAMITE');
$sheet->setCellValue('L4', 'LEY TRANSPARENCIA');
$sheet->setCellValue('M4', 'COMENTARIOS');

$i = 4;

foreach ($dataProvider as $data) 
    {
	$i++;
        $sheet->setCellValue('A'.$i, $data['IdSistema']);
	$sheet->setCellValue('B'.$i, $data['NumeroTramite']);
        $sheet->setCellValue('C'.$i, Yii::app()->dateFormatter->formatDateTime(CDateTimeParser::parse($data['fechaIngreso'], 'yyyy-MM-dd hh:mm:ss'),'medium','medium'));
        $sheet->setCellValue('D'.$i, $data['Usuario']);
        $sheet->setCellValue('E'.$i, $data['Prioridad']);
        $sheet->setCellValue('F'.$i, $data['Terminado']);
        $sheet->setCellValue('G'.$i, $data['Departamento']);
	$sheet->setCellValue('H'.$i, $data['tramite']);
	$sheet->setCellValue('I'.$i, $data['asunto']);
	$sheet->setCellValue('J'.$i, Yii::app()->dateFormatter->formatDateTime(CDateTimeParser::parse($data['FechaResolucion'], 'yyyy-MM-dd hh:mm:ss'),'medium','medium'));
	$sheet->setCellValue('K'.$i, $data['EstadoTramite']);
	$sheet->setCellValue('L'.$i, $data['LeyTransparencia']);
	$sheet->setCellValue('M'.$i, $data['ComentarioTramite']);				
}

//Agrega las opciones de filtrado en la cabecera
$objPHPExcel->getActiveSheet()->setAutoFilter('A4:' . $objPHPExcel->getActiveSheet()->getHighestColumn() . $objPHPExcel->getActiveSheet()->getHighestRow() );

//Obtenemos el indice de la ultima columna con datos
$highestColumn = $objPHPExcel->getActiveSheet()->getHighestColumn(); 

//Obtenemos el índice de la última fila
$highestRow = $objPHPExcel->getActiveSheet()->getHighestRow();

//Obtenemos el Indice de la última columna
$highestColumnIndex = PHPExcel_Cell::columnIndexFromString($highestColumn); //e.g., 6

//Ponemos un AUtoWidht (ancho de la columna automatico) a los datos
for($column =0; $column < $highestColumnIndex; $column++) 
{
	$objPHPExcel->getActiveSheet()->getColumnDimension(PHPExcel_Cell::stringFromColumnIndex($column))->setAutoSize(true);
}

//Ponemos negritas a las filas
$objPHPExcel->getActiveSheet()->getStyle('A1')->getFont()->setBold(true);
$objPHPExcel->getActiveSheet()->getStyle('A1')->getFont()->setSize(16);
$objPHPExcel->getActiveSheet()->getStyle('A4')->getFont()->setBold(true);
$objPHPExcel->getActiveSheet()->getStyle('B4')->getFont()->setBold(true);
$objPHPExcel->getActiveSheet()->getStyle('C4')->getFont()->setBold(true);
$objPHPExcel->getActiveSheet()->getStyle('D4')->getFont()->setBold(true);
$objPHPExcel->getActiveSheet()->getStyle('E4')->getFont()->setBold(true);
$objPHPExcel->getActiveSheet()->getStyle('F4')->getFont()->setBold(true);
$objPHPExcel->getActiveSheet()->getStyle('G4')->getFont()->setBold(true);
$objPHPExcel->getActiveSheet()->getStyle('H4')->getFont()->setBold(true);
$objPHPExcel->getActiveSheet()->getStyle('I4')->getFont()->setBold(true);
$objPHPExcel->getActiveSheet()->getStyle('J4')->getFont()->setBold(true);
$objPHPExcel->getActiveSheet()->getStyle('K4')->getFont()->setBold(true);
$objPHPExcel->getActiveSheet()->getStyle('L4')->getFont()->setBold(true);
$objPHPExcel->getActiveSheet()->getStyle('M4')->getFont()->setBold(true);

//Instaciamos un Write del objeto EXCEL
$objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);
$nombreDocumento = 'user_'.date('d_F_Y').'_'.date('H').'h'.date('i').'.xlsx';

//Grabamos el Documento
$objWriter->save("report/".$nombreDocumento);
 echo '<center>
 
 <a href="'.Yii::app()->request->baseUrl.'/report/'.$nombreDocumento.'">
 <img  id="loadingImg" src="'.Yii::app()->request->baseUrl.'/images/excel.png" alt="loading" border="0" /><br/>
 DESCARGAR EXCEL</a><br/>&nbsp;<br/>
 	<p><a href="'.Yii::app()->createUrl('reporte/index').'">REGRESAR A LA PÁGINA DE REPORTES.</a></p>
 	</center>
 ';

//Eliminar de memoria los objetos
$objPHPExcel->disconnectWorksheets();
unset($objPHPExcel);
unset($objWriter);

?>